package main

//go get -u github.com/go-sql-driver/mysql
import (
	"database/sql"
	_ "github.com/go-sql-driver/mysql"
	"log"
	"time"
)

func main() {
	//username:password@protocol(adress) /dbname[?param1=value&......paramN=valueN]
	db, err := sql.Open("mysql",
		"root:123456@tcp(127.0.0.1:3306)"+"/xiaoqu?charset=utf8&parseTime=true&loc=Local")
	if err != nil {
		log.Fatal(err)
	}
	db.SetMaxIdleConns(2)                //保持连接的最大空闲连接数
	db.SetMaxOpenConns(5)                //最大连接数
	db.SetConnMaxLifetime(7 * time.Hour) //闲置连接的最大存活时间
	//db.Exec()/ExecContext()               执行查询而不返回数据
	//db.Query()/QueryContext()             执行查询并返回数据
	//db.QueryRow()/QueryRowContext()       执行查询并最多只返回1行数据
	//db.Prepare()/PrepareContext()         创建一个预编译Statement对象
	//db.Begin()/BeginTx()                  开启一个事务，返回的Tx事务对象会被绑定到单个连接
	//db.Stats()                            返回数据库统计信息

	err = db.Ping()
	if err != nil {
		log.Fatal(err)
	}
	defer db.Close()
}
